/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.utfpr.view;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import pojo.Cliente;

/**
 *
 * @author gustavo
 */
public class ModeloTabelaCliente extends AbstractTableModel {

    private String[] colunas = new String[]{"Nome", "Dt. Nasc.", "Rg", "Endereço", "CPF", "Fone"};
    private List<Cliente> linhas = new ArrayList<Cliente>();
    private Cliente cliente = new Cliente();
    private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

    @Override
    public int getColumnCount() {
        return colunas.length;
    }

    @Override
    public int getRowCount() {
        return linhas.size();
    }

    public List<Cliente> getLinhas() {
        return linhas;
    }

    public void setLinhas(List<Cliente> linhas) {
        this.linhas = linhas;
    }

    public Cliente getObjetoSelecionado() {
        return cliente;
    }

    public void setObjetoSelecionado(Cliente cliente) {
        this.cliente = this.cliente;
    }

    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return colunas[column];
            case 1:
                return colunas[column];
            case 2:
                return colunas[column];
            case 3:
                return colunas[column];
            case 4:
                return colunas[column];
            case 5:
                return colunas[column];
            default:
                return "";
        }
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        cliente = (Cliente) getLinhas().get(rowIndex);
        switch (columnIndex) {
            case 0:
                return cliente.getNome();
            case 1:
                if(cliente.getDataNascimento() != null)
                    return sdf.format(cliente.getDataNascimento());
                else
                    return "";
            case 2:
                return cliente.getRg();
            case 3:
                return cliente.getEndereco();
            case 4:
                return cliente.getCpf();
            case 5:
                return cliente.getFone();
            default:
                return null; // Caso nenhum atributo seja possível.
        }
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        return String.class;
    }
}
